23 research outputs found

    The HERMIT in the Tree

    Get PDF
    This paper describes our experience using the HERMIT tool- kit to apply well-known transformations to the internal core language of the Glasgow Haskell Compiler. HERMIT provides several mechanisms to support writing general-purpose transformations: a domain-specific language for strategic programming specialized to GHC's core language, a library of primitive rewrites, and a shell-style{based scripting language for interactive and batch usage. There are many program transformation techniques that have been described in the literature but have not been mechanized and made available inside GHC - either because they are too specialized to include in a general-purpose compiler, or because the developers' interest is in theory rather than implementation. The mechanization process can often reveal pragmatic obstacles that are glossed over in pen-and-paper proofs; understanding and removing these obstacles is our concern. Using HERMIT, we implement eleven examples of three program transformations, report on our experience, and describe improvements made in the process

    How functional programming mattered

    Get PDF
    In 1989 when functional programming was still considered a niche topic, Hughes wrote a visionary paper arguing convincingly ‘why functional programming matters’. More than two decades have passed. Has functional programming really mattered? Our answer is a resounding ‘Yes!’. Functional programming is now at the forefront of a new generation of programming technologies, and enjoying increasing popularity and influence. In this paper, we review the impact of functional programming, focusing on how it has changed the way we may construct programs, the way we may verify programs, and fundamentally the way we may think about programs

    A formally verified compiler back-end

    Get PDF
    This article describes the development and formal verification (proof of semantic preservation) of a compiler back-end from Cminor (a simple imperative intermediate language) to PowerPC assembly code, using the Coq proof assistant both for programming the compiler and for proving its correctness. Such a verified compiler is useful in the context of formal methods applied to the certification of critical software: the verification of the compiler guarantees that the safety properties proved on the source code hold for the executable compiled code as well

    A Phase 1 Trial of pharmacologic interactions between transdermal selegiline and a 4-hour cocaine infusion

    Get PDF
    BackgroundThe selective MAO-B inhibitor selegiline has been evaluated in clinical trials as a potential medication for the treatment of cocaine dependence. This study evaluated the safety of and pharmacologic interactions between 7 days of transdermal selegiline dosed with patches (Selegiline Transdermal System, STS) that deliver 6 mg/24 hours and 2.5 mg/kg of cocaine administered over 4 hours.MethodsTwelve nondependent cocaine-experienced subjects received deuterium-labeled cocaine-d5 intravenously (IV) 0.5 mg/kg over 10 minutes followed by 2 mg/kg over 4 hours before and after one week of transdermal selegiline 6 mg/24 hours. Plasma and urine were collected for analysis of selegiline, cocaine, catecholamine and metabolite concentrations. Pharmacodynamic measures were obtained.ResultsSelegiline did not change cocaine pharmacokinetic parameters. Selegiline administration increased phenylethylamine (PEA) urinary excretion and decreased urinary MHPG-sulfate concentration after cocaine when compared to cocaine alone. No serious adverse effects occurred with the combination of selegiline and cocaine, and cocaine-induced physiological effects were unchanged after selegiline. Only 1 peak subjective cocaine effects rating changed, and only a few subjective ratings decreased across time after selegiline.ConclusionNo pharmacological interaction occurred between selegiline and a substantial dose of intravenous cocaine, suggesting the combination will be safe in pharmacotherapy trials. Selegiline produced few changes in subjective response to the cocaine challenge perhaps because of some psychoactive neurotransmitters changing in opposite directions

    Palatal development of preterm and low birthweight infants compared to term infants – What do we know? Part 1: The palate of the term newborn

    Get PDF
    BACKGROUND: The evidence on prematurity as 'a priori' a risk for palatal disturbances that increase the need for orthodontic or orthognathic treatment is still weak. Further well-designed clinical studies are needed. The objective of this review is to provide a fundamental analysis of methodologies, confounding factors, and outcomes of studies on palatal development. One focus of this review is the analysis of studies on the palate of the term newborn, since knowing what is 'normal' is a precondition of being able to assess abnormalities. METHODS: A search profile based on Cochrane search strategies applied to 10 medical databases was used to identify existing studies. Articles, mainly those published before 1960, were identified from hand searches in textbooks, encyclopedias, reference lists and bibliographies. Sources in English, German, and French of more than a century were included. Data for term infants were recalculated if particular information about weight, length, or maturity was given. The extracted values, especially those from non-English paper sources, were provided unfiltered for comparison. RESULTS: The search strategy yielded 182 articles, of which 155 articles remained for final analysis. Morphology of the term newborn's palate was of great interest in the first half of the last century. Two general methodologies were used to assess palatal morphology: visual and metrical descriptions. Most of the studies on term infants suffer from lack of reliability tests. The groove system was recognized as the distinctive feature of the infant palate. The shape of the palate of the term infant may vary considerably, both visually and metrically. Gender, race, mode of delivery, and nasal deformities were identified as causes contributing to altered palatal morphology. Until today, anatomical features of the newborn's palate are subject to a non-uniform nomenclature. CONCLUSION: Today's knowledge of a newborn's 'normal' palatal morphology is based on non-standardized and limited methodologies for measuring a three-dimensional shape. This shortcoming increases bias and is the reason for contradictory research results, especially if pathologic conditions like syndromes or prematurity are involved. Adequate measurement techniques are needed and the 'normal palatal morphology' should be defined prior to new clinical studies on palatal development

    Compilation by Transformation in the Glasgow Haskell Compiler

    No full text
    In this paper we describe the full set of local program transformations implemented in the Glasgow Haskell Compiler. The transformations are presented as source to source transformations in a simple functional language. The idea is that by composing these simple and small high level transformations one can achieve most of the benefits of more complicated and specialised transformations, many of which are often implemented as code generation optimisations. 1 Motivation Quite a few compilers use the compilation by transformation idiom. The idea is that as much as possible of the compilation process is expressed as correctnesspreserving transformations, each of which transforms a program into a semantically -equivalent program that (hopefully) executes more quickly or in less space. Functional languages are particularly amenable to this approach because they have a particularly rich family of possible transformations. Examples of transformation -based compilers include the Orbit compiler..

    Functional Programming on the GRIP multiprocessor

    Get PDF
    Most MIMD computer architectures can be classified as tightly-coupled or loosely-coupled, depending on the relative latencies seen by a processor accessing different parts of its address space. By adding microprogrammable functionality to the memory units, the authors have developed a MIMD computer architecture which explores the middle region of this spectrum. This has resulted in an unusual and flexible bus-based multiprocessor, which is being used as a base for research in parallel functional programming languages. The authors introduce parallel functional programming, and describe the architecture of the GRIP multiprocessor
    corecore